/**
 * filename: UserInfoService.java
 * author: luruifeng
 * date: 2016年3月2日
 * http: <a href='http://www.anzeinfo.com'>www.anzeinfo.com</a>
 * Copyright (c) 2016 Anze, Inc. All rights reserved.
 */
package com.anze.abd.service.userinfo;

import java.util.Date;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.anze.abd.persistence.dao.UserInfoDao;
import com.anze.abd.persistence.domain.UserInfo;
import com.anze.base.persistence.dao.UserDao;
import com.anze.base.persistence.domain.User;
import com.anze.base.service.commons.BaseService;

/**
 * 用户信息
 * @author luruifeng 2016年3月2日
 * @version 2.4
 * @since 2.4 2016年3月2日
 */
@Service("userInfoService")
public class UserInfoService extends BaseService {

	@Resource(name = "userInfoDao")
	private UserInfoDao userInfoDao;
	
	@Resource(name = "userDao")
	private UserDao userDao;
	
	/**
	 * 保存用户信息
	 * @param userInfo
	 * @return
	 * @author luruifeng 2016年3月2日
	 * @version 2.4
	 * @since 2.4 2016年3月2日
	 */
	public boolean saveUserInfo(UserInfo userInfo) {
		try {
			userInfoDao.saveOrUpdate(userInfo);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
	
	/**
	 * 获取用户信息
	 * @param id
	 * @return
	 * @author luruifeng 2016年3月2日
	 * @version 2.4
	 * @since 2.4 2016年3月2日
	 */
	public UserInfo getUserInfo(Long id) {
		return userInfoDao.get(id);
	}

	/**
	 * 通过用户获取用户信息
	 * @param user
	 * @return
	 * @author luruifeng 2016年3月2日
	 * @version 2.4
	 * @since 2.4 2016年3月2日
	 */
	public UserInfo getByUser(User user) {
		return userInfoDao.getByUser(user);
	}
	
	/**
	 * 更新用户
	 * @param updator
	 * @param userInfoName
	 * @param age
	 * @param email
	 * @param userInfoId
	 * @return
	 * @author luruifeng 2016年3月2日
	 * @version 2.4
	 * @since 2.4 2016年3月2日
	 */
	public boolean updateUserInfo(String updator,String userInfoName,
			String age,String email,Long userInfoId){
		UserInfo userInfo = userInfoDao.get(userInfoId);
		Date date = new Date();
		if(null != userInfo){
			userInfo.setName(userInfoName);
			userInfo.setAge(age);
			userInfo.setEmail(email);
			User user = userInfo.getUser();
			userInfoDao.update(userInfo);
			if(null != user){
				user.setUpdateTimestamp(date);
				user.setUpdator(updator);
				userDao.update(user);
			}
			return true;
		}else{
			return false;
		}
	}

}
